package cn.ilikes.tools.hbase.jpa.metadatas;

import java.util.Map;

import cn.ilikes.tools.hbase.jpa.JPAHbasePersistenUnitEnv;
import cn.ilikes.tools.hbase.jpa.metadatas.elements.EntityFields;
import cn.ilikes.tools.hbase.jpa.metadatas.elements.EntityIndex;

public interface IEntityMetaData {

	public JPAHbasePersistenUnitEnv getJPAHbasePersistenUnitEnv();

	public String getPuName();

	public EntityFields getEntityId();

	public String getEntityTableName();

	public String getEntityName();

	public Class<?> getEntityClazz();

	public Class<?>[] getInterfaces();

	public EntityIndex getEntityIndex();

	/**
	 * K : filedName
	 * 
	 * @return
	 */
	public Map<String, EntityFields> getEntityFields();

	public EntityFields findEntityFieldsByJPAColumn(String jpaColumnName);

	public boolean isUseSecondryIndex();

	/**
	 * entity 是否可以索引
	 * 
	 * @return
	 */
	public boolean isEntityableIndex();

}
